using System;
using System.Collections.Generic;
using System.Text;

namespace Com.AlbLab.GEP.Domain.Entities.NonStandard
{
    public class PNS_CT0_Cambio_Tensione : BASE_PraticaNonStandard
    {
        GEP_DATI_NOSTD _PraticaDB;

        public PNS_CT0_Cambio_Tensione(System.Data.DataColumnCollection cols, System.Data.DataRow dr)
            : base(cols, dr)
        {
           Standard = false;
           this.ListaControlliValori.Add(new string[] { Col_progressivo, "0", null, null, null, null, null });
           this.ListaControlliValori.Add(new string[] { Col_codice_servizio, "0", null, null, null, null, null });
           this.ListaControlliValori.Add(new string[] { Col_codice_flusso, "0", null, null, null, null, null });
           this.ListaControlliValori.Add(new string[] { Col_pariva_grossista, "1", "CheckPartitaIva", "Partita IVA grossista", null, null, null });
           this.ListaControlliValori.Add(new string[] { Col_codice_pod, "1", "CheckNotEmptyEPOD", "codice POD", null, null, null });
           this.ListaControlliValori.Add(new string[] { Col_nome_cliente, "0", null, null, null, null, null });
           this.ListaControlliValori.Add(new string[] { Col_codfis_cliente, "0", null, null, Col_pariva_cliente, null, null });
           this.ListaControlliValori.Add(new string[] { Col_pariva_cliente, "0", null, null, null, null, null });
           this.ListaControlliValori.Add(new string[] { Col_presenza_cliente_finale, "1", "CheckValoreSiNo", "Valore del campo 'Presenza cliente'", null, null, null });
           this.ListaControlliValori.Add(new string[] { Col_telefono_cliente, "2", "CheckNotEmpty", "numero telefono cliente finale", null, string.Concat(Col_presenza_cliente_finale, ";SI"), null });
           this.ListaControlliValori.Add(new string[] { Col_tipologia_connessione, "1", "CheckNotEmpty", "tipologia connessione", null, null, null });
           this.ListaControlliValori.Add(new string[] { Col_indirizzo_fornitura, "0", null, null, null, null, null });
           this.ListaControlliValori.Add(new string[] { Col_data_arrivo_pratica, "1", "CheckNotEmpty", "Data arrivo pratica", null, null, null });
           this.ListaControlliValori.Add(new string[] { Col_da_eseguire_non_prima_del, "0", null, null, null, null, null });
           this.ListaControlliValori.Add(new string[] { Col_data_fine_fornitura, "0", null, null, null, null, null });
           this.ListaControlliValori.Add(new string[] { Col_potenza_contrattuale_richiesta, "1", "CheckNotEmpty", "Potenza contrattuale richiesta", null, null, null });
           this.ListaControlliValori.Add(new string[] { Col_potenza_tollerata_richiesta, "1", "CheckNotEmpty", "Potenza tollerata richiesta", null, null, null });
           this.ListaControlliValori.Add(new string[] { Col_fasi_richieste, "1", "CheckNotEmpty", "Fasi richieste", null, null, null });
           this.ListaControlliValori.Add(new string[] { Col_tensioni_richieste, "1", "CheckNotEmpty", "Tensione richiesta", null, null, null });
           this.ListaControlliValori.Add(new string[] { Col_Uso_richiesto, "0", null, null, null, null, null });
           this.ListaControlliValori.Add(new string[] { Col_preventivo, "1", "CheckValoreSiNo", "Valore del campo 'Preventivo'", null, null, null });
           this.ListaControlliValori.Add(new string[] { Col_pratica_riferimento, "0", null, null, null, null, null });
           this.ListaControlliValori.Add(new string[] { Col_note, "0", null, null, null, null, null });
        }

        public override string CodiceServizio
        {
            get { return "CT0"; }
        }

        public override string DescrizioneServizio
        {
            get { return "Cambio tensione"; }
        }

        public override string CodicePOD
        {
            get { return _PraticaDB.Gep_testata.Tes_Pod; }

        }

        public override string Cfis_Cliente
        {
            get { return _PraticaDB.Gep_testata.Tes_Codfis_Cli; }
        }

        public override string Piva_Cliente
        {
            get { return _PraticaDB.Gep_testata.Tes_Pariva_Cli; }
        }

        public override string Piva_Utente
        {
            get
            {
                string cRtnValue;

                if (!IsErrore) { cRtnValue = _PraticaDB.Gep_testata.Tes_Pariva_Cli; }
                else { cRtnValue = (string)RecordRaw["piva"]; }
                return cRtnValue;
            }
        }

        public override string Piva_Distributore
        {
            get { return _PraticaDB.Gep_testata.Tes_Piva_Distributore; }
        }

        public override string Cod_Prat_Utente
        {
            get { return _PraticaDB.Gep_testata.Tes_Cod_Prat_Utente; }
        }

        public override string Cod_Prat_distributore
        {

            get
            {
                string cRtnValue;
                if (!IsErrore) { cRtnValue = _PraticaDB.Gep_testata.Id_tes_cod_pratica.ToString(); }
                else { cRtnValue = ""; }
                return cRtnValue;
            }
        }

        public override void CaricaPraticaDB()
        {

        }

        public override void SalvaPraticaDB()
        {
            _PraticaDB = new GEP_DATI_NOSTD(1);
            _PraticaDB.Gep_testata.Tes_Piva_Distributore = String.Format("{0}", RecordRaw[Col_pariva_grossista]);
            _PraticaDB.Gep_testata.Tes_Pod = (string)RecordRaw[Col_codice_pod];
            _PraticaDB.NST_presenza_cliente_finale = (string)RecordRaw[Col_presenza_cliente_finale];
            _PraticaDB.Gep_testata.Tes_Tel_Cli = String.Format("{0}", RecordRaw[Col_telefono_cliente]);
            _PraticaDB.NST_tipo_conn = (string)RecordRaw[Col_tipologia_connessione];
            _PraticaDB.Gep_testata.Tes_Dt_Arr_Pra = Convert.ToDateTime(RecordRaw[Col_data_arrivo_pratica]);
            _PraticaDB.Nst_Pot_Rich_Contr = (decimal)RecordRaw[Col_potenza_contrattuale_richiesta];
            _PraticaDB.Nst_Pot_Rich_Toll = (decimal)RecordRaw[Col_potenza_tollerata_richiesta];
            _PraticaDB.Nst_Fasi_Rich = (decimal)RecordRaw[Col_fasi_richieste];
            _PraticaDB.Nst_Tens_Rich = (decimal)RecordRaw[Col_tensioni_richieste];
            _PraticaDB.NST_preventivo = (string)RecordRaw[Col_preventivo];
        }

        public override object RecordDB
        {
            get { return _PraticaDB; }
            set { _PraticaDB = (GEP_DATI_NOSTD)value; }
        }

        public override String Cod_Contr_disp
        {
            get { return _PraticaDB.Gep_testata.Tes_Cod_Contr_Disp; }
        }


    }
}
